kMultiModeCRT4Connect = 7, // Expansion to large multi mode (not yet used)
kModelessConnect = 8 // Expansion to modeless model (not yet used)
};
// csTimingFlags values in VDTimingInfoRec
//
enum {
kModeSafe = 0, // This mode does not need confirmation
kModeDefault = 1 // This is the default mode for this type of connection
};
enum {
/* Control Codes */
cscReset = 0,
cscKillIO = 1,
cscSetMode = 2,
cscSetEntries = 3,
cscSetGamma = 4,
cscGrayPage = 5,
cscGrayScreen = 5,
cscSetGray = 6,
cscSetInterrupt = 7,
cscDirectSetEntries = 8,
cscSetDefaultMode = 9,
cscSwitchMode = 10,
cscSetSync = 11
};
enum {
/* Status Codes */
cscGetMode = 2,
cscGetEntries = 3,
cscGetPageCnt = 4,
cscGetPages = 4, /* This is what C&D 2 calls it. */
cscGetPageBase = 5,
cscGetBaseAddr = 5, /* This is what C&D 2 calls it. */
cscGetGray = 6,
cscGetInterrupt = 7,
cscGetGamma = 8,
cscGetDefaultMode = 9,
cscGetCurMode = 10,
cscGetSync = 11,
cscGetConnection = 12, /* Return information about the connection to the display */
cscGetModeTiming = 13 /* Return timing info for a mode */
};
#if defined(powerc) || defined (__powerc)
#pragma options align=mac68k
#endif
struct VPBlock {
long vpBaseOffset; /*Offset to page zero of video RAM (From minorBaseOS).*/
short vpRowBytes; /*Width of each row of video memory.*/
Rect vpBounds; /*BoundsRect for the video display (gives dimensions).*/
short vpVersion; /*PixelMap version number.*/
short vpPackType;
long vpPackSize;
long vpHRes; /*Horizontal resolution of the device (pixels per inch).*/
long vpVRes; /*Vertical resolution of the device (pixels per inch).*/
short vpPixelType; /*Defines the pixel type.*/
short vpPixelSize; /*Number of bits in pixel.*/
short vpCmpCount; /*Number of components in pixel.*/
short vpCmpSize; /*Number of bits per component*/
long vpPlaneBytes; /*Offset from one plane to the next.*/
};
#if defined(powerc) || defined(__powerc)
#pragma options align=reset
#endif
typedef struct VPBlock VPBlock;
typedef VPBlock *VPBlockPtr;
#if defined(powerc) || defined (__powerc)
#pragma options align=mac68k
#endif
struct VDEntryRecord {
Ptr csTable; /*(long) pointer to color table entry=value, r,g,b:INTEGER*/
};
#if defined(powerc) || defined(__powerc)
#pragma options align=reset
#endif
typedef struct VDEntryRecord VDEntryRecord;
typedef VDEntryRecord *VDEntRecPtr;
/* Parm block for SetGray control call */
#if defined(powerc) || defined (__powerc)
#pragma options align=mac68k
#endif
struct VDGrayRecord {
Boolean csMode; /*Same as GDDevType value (0=mono, 1=color)*/
};
#if defined(powerc) || defined(__powerc)
#pragma options align=reset
#endif
typedef struct VDGrayRecord VDGrayRecord;
typedef VDGrayRecord *VDGrayPtr;
/* Parm block for SetEntries control call */
#if defined(powerc) || defined (__powerc)
#pragma options align=mac68k
#endif
struct VDSetEntryRecord {
ColorSpec *csTable; /*Pointer to an array of color specs*/
short csStart; /*Which spec in array to start with, or -1*/
short csCount; /*Number of color spec entries to set*/
};
#if defined(powerc) || defined(__powerc)
#pragma options align=reset
#endif
typedef struct VDSetEntryRecord VDSetEntryRecord;
typedef VDSetEntryRecord *VDSetEntryPtr;
/* Parm block for SetGamma control call */
#if defined(powerc) || defined (__powerc)
#pragma options align=mac68k
#endif
struct VDGammaRecord {
Ptr csGTable; /*pointer to gamma table*/
};
#if defined(powerc) || defined(__powerc)
#pragma options align=reset
#endif
typedef struct VDGammaRecord VDGammaRecord;
typedef VDGammaRecord *VDGamRecPtr;
#if defined(powerc) || defined (__powerc)
#pragma options align=mac68k
#endif
struct VDSwitchInfoRec {
unsigned short csMode; /*(word) mode depth*/
unsigned long csData; /*(long) functional sResource of mode*/
unsigned short csPage; /*(word) page to switch in*/
Ptr csBaseAddr; /*(long) base address of page (return value)*/
unsigned long csReserved; /*(long) Reserved (set to 0) */
};
#if defined(powerc) || defined(__powerc)
#pragma options align=reset
#endif
typedef struct VDSwitchInfoRec VDSwitchInfoRec;
typedef VDSwitchInfoRec *VDSwitchInfoPtr;
#if defined(powerc) || defined (__powerc)
#pragma options align=mac68k
#endif
struct VDTimingInfoRec {
unsigned long csTimingMode; // LONGINT - (long) timing mode (a la InitGDevice)
unsigned long csTimingReserved; // LONGINT - (long) reserved
unsigned long csTimingFormat; // LONGINT - (long) what format is the timing info
unsigned long csTimingData; // LONGINT - (long) data supplied by driver
unsigned long csTimingFlags; // LONGINT - (long) mode within device
};
#if defined(powerc) || defined(__powerc)
#pragma options align=reset
#endif
typedef struct VDTimingInfoRec VDTimingInfoRec;
typedef VDTimingInfoRec *VDTimingInfoPtr;
#if defined(powerc) || defined (__powerc)
#pragma options align=mac68k
#endif
struct VDDisplayConnectInfoRec {
unsigned short csDisplayType; // INTEGER - (word) Type of display connected
unsigned short csConnectTagged; // INTEGER - (word) Display is currently "it" (tagged to identify component)
unsigned long csConnectFlags; // LONGINT - (long) tell us about the connection
unsigned long csDisplayComponent; // LONGINT - (long) if the card has a direct connection to the display, it returns the display component here (FUTURE)
unsigned long csConnectReserved; // LONGINT - (long) reserved